package models;

import play.data.validation.MaxSize;
import play.db.jpa.Model;

import play.*;
import play.db.jpa.*;
import javax.persistence.*;

import org.joda.time.DateTime;

import Utils.ClassUtilsDB;

import java.util.*;

@Entity
public class Favorecido extends Model {
	
	//Atributos
	
	private long codFavorecido;
	private long codUsuario;
	
	@MaxSize(50)
	private String favorecido;
	
	@MaxSize(1)
	private char tipoFavorecido;
	
	@MaxSize(50)
	private String endereco;
	private long codCidade;
	private long codBairro;
	
	@MaxSize(14)
	private String cep;
	
	private DateTime dataCadastro;
	
	private boolean ativo;
	
	@MaxSize(14)
	private String telefone;
	
	@MaxSize(14)
	private String celular;
	
	@MaxSize(14)
	private String fax;
	private DateTime dataInativacao;
	
	@MaxSize(50)
	private String email;
	
	
	//Métodos de acesso
	
	/**
	 * @return the codFavorecido
	 */
	public long getCodFavorecido() {
		return codFavorecido;
	}


	/**
	 * @param codFavorecido the codFavorecido to set
	 */
	public void setCodFavorecido(long codFavorecido) {
		this.codFavorecido = codFavorecido;
	}


	/**
	 * @return the codUsuario
	 */
	public long getCodUsuario() {
		return codUsuario;
	}


	/**
	 * @param codUsuario the codUsuario to set
	 */
	public void setCodUsuario(long codUsuario) {
		this.codUsuario = codUsuario;
	}


	/**
	 * @return the favorecido
	 */
	public String getFavorecido() {
		return favorecido;
	}


	/**
	 * @param favorecido the favorecido to set
	 */
	public void setFavorecido(String favorecido) {
		this.favorecido = favorecido;
	}


	/**
	 * @return the tipoFavorecido
	 */
	public char getTipoFavorecido() {
		return tipoFavorecido;
	}


	/**
	 * @param tipoFavorecido the tipoFavorecido to set
	 */
	public void setTipoFavorecido(char tipoFavorecido) {
		this.tipoFavorecido = tipoFavorecido;
	}


	/**
	 * @return the endereco
	 */
	public String getEndereco() {
		return endereco;
	}


	/**
	 * @param endereco the endereco to set
	 */
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}


	/**
	 * @return the codCidade
	 */
	public long getCodCidade() {
		return codCidade;
	}


	/**
	 * @param codCidade the codCidade to set
	 */
	public void setCodCidade(long codCidade) {
		this.codCidade = codCidade;
	}


	/**
	 * @return the codBairro
	 */
	public long getCodBairro() {
		return codBairro;
	}


	/**
	 * @param codBairro the codBairro to set
	 */
	public void setCodBairro(long codBairro) {
		this.codBairro = codBairro;
	}


	/**
	 * @return the cep
	 */
	public String getCep() {
		return cep;
	}


	/**
	 * @param cep the cep to set
	 */
	public void setCep(String cep) {
		this.cep = cep;
	}


	/**
	 * @return the dataCadastro
	 */
	public DateTime getDataCadastro() {
		return dataCadastro;
	}


	/**
	 * @param dataCadastro the dataCadastro to set
	 */
	public void setDataCadastro(DateTime dataCadastro) {
		this.dataCadastro = dataCadastro;
	}


	/**
	 * @return the ativo
	 */
	public boolean isAtivo() {
		return ativo;
	}


	/**
	 * @param ativo the ativo to set
	 */
	public void setAtivo(boolean ativo) {
		this.ativo = ativo;
	}


	/**
	 * @return the telefone
	 */
	public String getTelefone() {
		return telefone;
	}


	/**
	 * @param telefone the telefone to set
	 */
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}


	/**
	 * @return the celular
	 */
	public String getCelular() {
		return celular;
	}


	/**
	 * @param celular the celular to set
	 */
	public void setCelular(String celular) {
		this.celular = celular;
	}


	/**
	 * @return the fax
	 */
	public String getFax() {
		return fax;
	}


	/**
	 * @param fax the fax to set
	 */
	public void setFax(String fax) {
		this.fax = fax;
	}


	/**
	 * @return the dataInativacao
	 */
	public DateTime getDataInativacao() {
		return dataInativacao;
	}


	/**
	 * @param dataInativacao the dataInativacao to set
	 */
	public void setDataInativacao(DateTime dataInativacao) {
		this.dataInativacao = dataInativacao;
	}


	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}


	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}



	
	
	//Construtor
	
	public Favorecido (long codUsuario, String favorecido, String endereco,
			char tipoFavorecido, String cep, String telefone, String celular, String fax,
			long codCidade, long codBairro, String email)
	{
		try
		{
			this.codFavorecido 	= ClassUtilsDB.next("CodFavorecido","Favorecido","CodUsuario = %d",codUsuario);
			this.codUsuario 	= codUsuario;
			this.favorecido 	= favorecido;
			this.tipoFavorecido = tipoFavorecido;
			this.endereco 		= endereco;
			this.codCidade 		= codCidade;
			this.codBairro 		= codBairro;
			this.cep 			= cep;
			this.dataCadastro 	= new DateTime();
			this.ativo 			= true;
			this.telefone 		= telefone;
			this.celular 		= celular;
			this.fax 			= fax;
			this.dataInativacao = null;
			this.email 			= email;
		}
		catch(Exception e)
		{
			
		}
	}
	
	
	public Favorecido()
	{
		
	}

}
